package com.w7vm.menuweb.managerBean;

import java.io.IOException;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import javax.annotation.PostConstruct;
import javax.annotation.Resource;
import javax.ejb.EJB;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ManagedProperty;
import javax.faces.bean.RequestScoped;
import javax.faces.bean.ViewScoped;
import javax.faces.context.FacesContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpSession;

import org.primefaces.context.RequestContext;
import org.primefaces.event.FlowEvent;
import org.springframework.security.core.context.SecurityContextHolder;

import com.w7vm.menuweb.entity.AcessoWeb;
import com.w7vm.menuweb.entity.ContratoWeb;
import com.w7vm.menuweb.entity.RestauranteFilialJuridicoWeb;
import com.w7vm.menuweb.entity.RestauranteFilialWeb;
import com.w7vm.menuweb.facade.AcessoFacade;
import com.w7vm.menuweb.facade.CardapioG1Facade;
import com.w7vm.menuweb.facade.CardapioG2Facade;
import com.w7vm.menuweb.facade.CardapioG3Facade;
import com.w7vm.menuweb.facade.ContratoFacade;
import com.w7vm.menuweb.facade.RestauranteFilialFacade;
import com.w7vm.menuweb.facade.RestauranteSedeFacade;
import com.w7vm.menuweb.message.MessageFaces;
import com.w7vm.menuweb.to.CardapioQtdeTO;
import com.w7vm.menuweb.utility.Constantes;
import com.w7vm.menuweb.utility.PropertiesLoaderImpl;

@ManagedBean
@ViewScoped

public class PortalCardapioMB {
	

	@EJB
	private AcessoFacade acessoEJB;

	@EJB
	private ContratoFacade contratoEJB;
	
	@EJB
	private CardapioG1Facade cardapioG1EJB; 
	
	@EJB
	private CardapioG2Facade cardapioG2EJB; 

	@EJB
	private CardapioG3Facade cardapioG3EJB; 

	
	@EJB
	private RestauranteFilialFacade restauranteFilialEJB;
	
	private boolean statusPlanoVencendo = true;
	private String msgPlanoVencendo;
	private String tituloNome;
	private String tituloPlanoVencido;
	private String regraVencimentoContrato;
	
	@ManagedProperty(value = "#{contratoMB}")
	public ContratoMB contratoMB;
	
	
	@ManagedProperty(value = "#{acessoMB}")
	public AcessoMB acessoMB;
	
	
	@ManagedProperty(value = "#{loginMB}")
	public LoginMB loginMB;


	private List<AcessoWeb> usuarioAcessoL = new ArrayList<AcessoWeb>();
	private List<CardapioQtdeTO> qtdeCardapioAtivoPorFilialL = new ArrayList<CardapioQtdeTO>();
	
	private List<RestauranteFilialWeb> filialAcessoL = new ArrayList<RestauranteFilialWeb>();
	Constantes constObj = new Constantes();

	private LoginMB loginOjb = new LoginMB();

	private int idRestFilial;
	private boolean statusDialog = false;

	
	private AcessoWeb acessoObj;
	List<ContratoWeb> contratoL = null;
	List<RestauranteFilialWeb> restFilial = new ArrayList<RestauranteFilialWeb>();
	
	private int idRestSede;
	private String restSede;
	private String nomeUsuario;
	private String restauranteSelect;
	
	private String valorParametro = constObj.PAGINA_HOME_PORTAL;
	
	private RestauranteFilialWeb filialObj;
	private RestauranteFilialJuridicoWeb filialJuridicoObj;
	
	private boolean statusPlAgPagamento;
	private boolean statusPlDesativado;
	private boolean statusPlCadastrado;
	
	private boolean skip;

	private int statusRestauranteFilial;
	
	private boolean statusRenovacaoDialog = false;
	

	@PostConstruct
	public void init()
	{
		String parametroChagePage = FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap().get("changeAccess");
		System.out.println("TROCAR ACESSO valorKey "+ parametroChagePage);
		
		if(loginMB.acesso.getUsuarioWeb().getContratoWeb().getStatus() == constObj.CONTRATO_PLANO_AGUARDANDO_PG){
			System.out.println("PLANO AGUARDANDO PAGAMENTO ");
			setStatusPlAgPagamento(true);
			RequestContext context = RequestContext.getCurrentInstance();
			context.execute("PF('notificacaoStatusConta').show();");
		}
		else if(loginMB.acesso.getUsuarioWeb().getContratoWeb().getStatus() == constObj.CONTRATO_PLANO_DESATIVADO){
			System.out.println("PLANO DESATIVADO");
			setStatusPlDesativado(true);
			RequestContext context = RequestContext.getCurrentInstance();
			context.execute("PF('notificacaoStatusConta').show();");
		}
		else if(loginMB.acesso.getUsuarioWeb().getContratoWeb().getStatus() == constObj.CONTRATO_PLANO_CADASTRADO){
			System.out.println("PLANO CADASTRADO");
			setStatusPlCadastrado(true);
			RequestContext context = RequestContext.getCurrentInstance();
			context.execute("PF('notificacaoStatusConta').show();");
		}
		
		else if((loginMB.acesso.getUsuarioWeb().getContratoWeb().getStatus() == constObj.CONTRATO_PLANO_ATIVO) &&
			(loginOjb.getSessao("UsuarioLogado") == null) && (parametroChagePage == null))	{
			loadAcessoUsuarioLogado();
		}
		else if((loginMB.acesso.getUsuarioWeb().getContratoWeb().getStatus() == constObj.CONTRATO_PLANO_ATIVO) &&
				(loginOjb.getSessao("UsuarioLogado") != null) && (parametroChagePage == null) && (getRestauranteSelect() != null)){
			defineDadosAcessoTela();
			redirecionaPaginaPortal();
		}
		else if(parametroChagePage != null){
			valorParametro = parametroChagePage;
			System.out.println("TROCAR ACESSO valorParametro "+ valorParametro );
			loadAcessoUsuarioLogado();
		}

	}
	
	
	public void redirecionaPaginaMsgLogin(){
		try {
			FacesContext.getCurrentInstance().getExternalContext().redirect("../user/message/msgLogin.jsf");
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
	
	
	
	public void renovacaoPlanoPortal() {
		System.out.println("[METHOD][renovacaoPlanoPortal]");
		loginOjb.gravarSessao("origemAcesso", "portalCardapioMB");
		
		try {
			 contratoMB.statusPagamentoRenovacaoPlano = true;
			FacesContext.getCurrentInstance().getExternalContext().redirect("../../../pages/protected/user/renovacaoPlanoPortal.jsf");
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
	
	public boolean isStatusPlanoVencendo() {
		System.out.println("[METHOD][isStatusPlanoVencendo]");

		if (loginOjb.getSessao("contratoExpirandoDias") != null) {
			int dias = (Integer) loginOjb.getSessao("contratoExpirandoDias");

			if (contratoEJB.defineRegraRenovacao(dias) == constObj.CONTRATO_A_VENCER) {
				statusPlanoVencendo = true;
				setMsgPlanoVencendo("Plano vencendo em " + dias
						+ " dias, renová-lo agora ?");
			} else if (contratoEJB.defineRegraRenovacao(dias) == constObj.CONTRATO_VENCE_HOJE) {
				statusPlanoVencendo = true;
				setMsgPlanoVencendo("Plano vencendo hoje, renová-lo agora ?");
			} else if (contratoEJB.defineRegraRenovacao(dias) == constObj.CONTRATO_VENCIDO) {
				statusPlanoVencendo = true;
				setMsgPlanoVencendo("Plano vencido, renová-lo agora ?");
			} else {
				statusPlanoVencendo = false;
			}
		}
		return statusPlanoVencendo;
	}
		
	public void gravaNomeRestauranteSessao(String nomeSessao, Object dado){
		loginOjb.gravarSessao(nomeSessao, dado);
	}
	
	public void loadInformacoesPortal(){
		System.out.println("loadInformacoesPortal()");

		defineDadosAcessoTela();
		statusDialog = false;
		
		System.out.println("LoadInformaçõs 1 ...................................."+ loginOjb.getSessao("contratoExpirandoDias"));
		
		if(regraVencimentoContrato == null){
			regraVencimentoContrato = contratoMB.defineRegraRenovacaoContrato();
			
			if(regraVencimentoContrato.equals(constObj.CONTRATO_VENCIDO)){
				setStatusRenovacaoDialog(true);
				RequestContext context = RequestContext.getCurrentInstance();
				context.execute("PF('notificacaoPlanoVencido').show();");
			}
			else if(!getRestauranteSelect().equals(getRestSede())){
				if(statusRestauranteFilial == constObj.INATIVO){
					acessoMB.logoutPageBean();
					redirecionaPaginaFilialSemContrato();
				}
				else{
					setStatusRenovacaoDialog(false);
					redirecionaPaginaPortal();
				}
			}
			else{
				setStatusRenovacaoDialog(false);
				redirecionaPaginaPortal();
			}

		}

		//Verifica Quantidade de empresas filiais cadastradas
		int idSede = (Integer) loginOjb.getSessao("IDSede");
		if(restFilial.size() == 0){
			restFilial = restauranteFilialEJB.findFilialByIDMatriz(idSede);
			gravaNomeRestauranteSessao("QdteRestauranteFilialCadastrado",restFilial.size());
		}
		
		//Verifica Quantidade Total de cardapios Ativos Cadastrados
		int qtdeTotalCardapiosAtivo = calculaQtdeCardapiosAtivoTotal();
		gravaNomeRestauranteSessao("QtdeCardapioAtivoCadastrado",qtdeTotalCardapiosAtivo);
	}
	
	// Method: calculaQtdeCardapiosAtivoTotal() ***************************************************************
	// Description: Calcula a quantidade total de cardápios cadastrados em todas os restaurantes **************
	//
		
	public int calculaQtdeCardapiosAtivoTotal(){
		System.out.println("calculaQtdeCardapiosAtivoTotal()");
		int idSede = (Integer) loginOjb.getSessao("IDSede");

		System.out.println("calculaQtdeCardapiosAtivoTotal()...............................ID..............."+ idSede);
		
		long totCardBuffet = cardapioG1EJB.buscaQtdeCardapioBuffetAtivo(idSede,constObj.Sede);
		System.out.println("calculaQtdeCardapiosAtivoTotal()...............................TOTAL totCardBuffet..............."+ totCardBuffet);

		long totCardSelfService = cardapioG1EJB.buscaQtdeCardapioSelfServiceAtivo(idSede, constObj.Sede);
		System.out.println("calculaQtdeCardapiosAtivoTotal()...............................TOTAL totCardSelfService..............."+ totCardSelfService);
		
		long totCardInfantil = cardapioG2EJB.buscaQtdeCardapioInfantilAtivo(idSede,constObj.Sede); 
		System.out.println("calculaQtdeCardapiosAtivoTotal()...............................TOTAL totCardInfantil..............."+ totCardInfantil);

		long totCardLaCarte  = cardapioG2EJB.buscaQtdeCardapioLaCarteAtivo(idSede, constObj.Sede);
		System.out.println("calculaQtdeCardapiosAtivoTotal()...............................TOTAL totCardLaCarte..............."+ totCardLaCarte);
		
		long totCardEspecialidade  = cardapioG3EJB.buscaQtdeCardapioEspecialidadeAtivo(idSede, constObj.Sede);
		System.out.println("calculaQtdeCardapiosAtivoTotal()...............................TOTAL totCardEspecialidade..............."+ totCardEspecialidade);
		
		Long total = totCardBuffet + totCardSelfService + totCardInfantil + totCardLaCarte + totCardEspecialidade;
		System.out.println("calculaQtdeCardapiosAtivoTotal()...............................TOTAL ..............."+ total);

		int totalGeral =  Integer.valueOf(total.toString());
		System.out.println("[calculaQtdeCardapiosAtivoTotal] -- TOTAL CARDAPIO CONTRATO "+ totalGeral);

		return totalGeral;
	}
	
	// Method:calculaQtdeCardapiosAtivoPorAcesso() ************************************************
	// Description: Calcula a quantidade de cardápios ativos cadastrados por acesso  **************
	//
		
	public List<CardapioQtdeTO> calculaQtdeCardapiosAtivoPorAcesso(){
		System.out.println("calculaQtdeCardapiosAtivoFilial()");
		int idRestaurante = (Integer) loginOjb.getSessao("IDRestaurante");
		String tipoConsulta = null;
		System.out.println("calculaQtdeCardapiosAtivoFilial() ID............................."+ idRestaurante);
		
		if(loginOjb.getSessao("AcessoFilial") == constObj.ACESSO_FILIAL_SIM){
			tipoConsulta = constObj.Filial;
		}
		else if(loginOjb.getSessao("AcessoFilial") == constObj.ACESSO_FILIAL_NAO){
			tipoConsulta = constObj.Sede;
		}

		CardapioQtdeTO cardQtdeObj = new CardapioQtdeTO();
		ArrayList<CardapioQtdeTO> totaCardFilialL = new ArrayList<CardapioQtdeTO>();

		Long totCardBuffet = cardapioG1EJB.buscaQtdeCardapioBuffetAtivo(idRestaurante,tipoConsulta);
		int totalBuffet =  Integer.valueOf(totCardBuffet.toString());
		cardQtdeObj.setNomeCardapio(" "+constObj.CARDAPIO_BUFFET_DESC+ " ");
		cardQtdeObj.setQtdeCardapioAtivo(totalBuffet);
		cardQtdeObj.setImgCardapio("../../../resources/icones/cardapio/cardBuffet.ico");
		totaCardFilialL.add(cardQtdeObj);
		
		Long totCardSelfService = cardapioG1EJB.buscaQtdeCardapioSelfServiceAtivo(idRestaurante,tipoConsulta);
		cardQtdeObj = new CardapioQtdeTO();
		int totalSelfService =  Integer.valueOf(totCardSelfService.toString());
		cardQtdeObj.setNomeCardapio(" "+constObj.CARDAPIO_SELFSERVICE_DESC+ " ");
		cardQtdeObj.setQtdeCardapioAtivo(totalSelfService);
		cardQtdeObj.setImgCardapio("../../../resources/icones/cardapio/cardSelfService.ico");
		totaCardFilialL.add(cardQtdeObj);
		
		Long totCardInfantil = cardapioG2EJB.buscaQtdeCardapioInfantilAtivo(idRestaurante,tipoConsulta); 
		cardQtdeObj = new CardapioQtdeTO();
		int totalInfantil =  Integer.valueOf(totCardInfantil.toString());
		cardQtdeObj.setNomeCardapio(" "+constObj.CARDAPIO_INFANTIL_DESC+ " ");
		cardQtdeObj.setQtdeCardapioAtivo(totalInfantil);
		cardQtdeObj.setImgCardapio("../../../resources/icones/cardapio/cardInfantil.ico");
		totaCardFilialL.add(cardQtdeObj);

		Long totCardLaCarte  = cardapioG2EJB.buscaQtdeCardapioLaCarteAtivo(idRestaurante,tipoConsulta);
		cardQtdeObj = new CardapioQtdeTO();
		int totalLaCarte =  Integer.valueOf(totCardLaCarte.toString());
		cardQtdeObj.setNomeCardapio(" "+constObj.CARDAPIO_LACARTE_DESC+ " ");
		cardQtdeObj.setQtdeCardapioAtivo(totalLaCarte);
		cardQtdeObj.setImgCardapio("../../../resources/icones/cardapio/cardLaCarte.ico");
		totaCardFilialL.add(cardQtdeObj);
		
		Long totCardEspecialidade  = cardapioG3EJB.buscaQtdeCardapioEspecialidadeAtivo(idRestaurante,tipoConsulta);
		cardQtdeObj = new CardapioQtdeTO();
		int totalEspecialidade =  Integer.valueOf(totCardEspecialidade.toString());
		cardQtdeObj.setNomeCardapio(" "+constObj.CARDAPIO_ESPECIALIDADES_DESC+ " ");
		cardQtdeObj.setQtdeCardapioAtivo(totalEspecialidade);
		cardQtdeObj.setImgCardapio("../../../resources/icones/cardapio/cadEspecialidade.ico");
		totaCardFilialL.add(cardQtdeObj);
		
		System.out.println("[calculaQtdeCardapiosAtivoFilial] -- TOTAL CARDAPIO ATIVO NO CONTRATO "+ totaCardFilialL.size());
		return totaCardFilialL;
	}

	
	public void redirecionaPaginaFilialSemContrato(){
		try {
			FacesContext.getCurrentInstance().getExternalContext().redirect("../../public/filialSemContrato.jsf");
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
	
	public void cancelaOperacaoPortal() {
		
		if(!valorParametro.equals(constObj.PAGINA_ALTERA_ACESSO))
			redirecionaPaginaInicial();
		}

	public void redirecionaPaginaInicial(){
		try {
			FacesContext.getCurrentInstance().getExternalContext().redirect("../../public/index.jsf");
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
	
	public void redirecionaPaginaPortal(){
		try {
			FacesContext.getCurrentInstance().getExternalContext().redirect("../user/portalCardapioMundo.jsf");
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
	
		
/* =========================================================================================================================================
=========================================================================================================================================== */

	
	public void loadAcessoUsuarioLogado(){
		System.out.println("loadAcessoUsuarioLogado()");
		FacesContext context = FacesContext.getCurrentInstance();
		RequestContext contextResq = RequestContext.getCurrentInstance();
		int idUsuario = (Integer) loginOjb.getSessao("IDUsuario");
		setAcessoObj(new AcessoWeb());
		filialObj = new RestauranteFilialWeb();
		filialJuridicoObj = new RestauranteFilialJuridicoWeb();
		
		
		String nomeUsuario = (String) loginOjb.getSessao("NomeUsuario");
		String parametroSessao = (String) loginOjb.getSessao("NomeFantasia");
		System.out.println("ParametroSessao  "+ parametroSessao);
		
		nomeUsuario = "Olá "+ nomeUsuario;
		setNomeUsuario(nomeUsuario);
		
		usuarioAcessoL = acessoEJB.findUsuarioAcessoByIDUsuario(idUsuario);
		gravaNomeRestauranteSessao("UsuarioLogado",1);
		for(AcessoWeb objAcesso : usuarioAcessoL){
			if(objAcesso.getAcessoFilial().equals("N")){
				setIdRestSede(objAcesso.getRestauranteSedeWeb().getIdRestauranteSedeWeb());
				setRestSede(objAcesso.getRestauranteSedeWeb().getRestauranteSedeJuridicoWeb().getNomeFantasia());
			}
			else if(objAcesso.getAcessoFilial().equals("S")){
				System.out.println("getIdRestauranteFilialWeb()   "+ objAcesso.getRestauranteFilialWeb().getIdRestauranteFilialWeb());
				System.out.println("getNomeFantasiaFilial()   "+ objAcesso.getRestauranteFilialWeb().getRestauranteFilialJuridicoWeb().getNomeFantasiaFilial());
				filialObj.setIdRestauranteFilialWeb(objAcesso.getRestauranteFilialWeb().getIdRestauranteFilialWeb());
					
				filialJuridicoObj.setNomeFantasiaFilial(objAcesso.getRestauranteFilialWeb().getRestauranteFilialJuridicoWeb().getNomeFantasiaFilial());
				filialObj.setRestauranteFilialJuridicoWeb(filialJuridicoObj);
				filialAcessoL.add(filialObj);
				setFilialAcessoL(filialAcessoL);
				filialObj = new RestauranteFilialWeb();
				filialJuridicoObj = new RestauranteFilialJuridicoWeb();
			}
		}
		
		// TROCA ACESSO RESTAURANTE LOGADO: SEDE => FILIAL | FILIAL => SEDE
		if(usuarioAcessoL.size() > 1){
			if(parametroSessao == null || valorParametro.equals(constObj.PAGINA_ALTERA_ACESSO)){
				System.out.println("TAmanho List UsuarioAcessoL  "+ usuarioAcessoL.size());
				setStatusDialog(true);
				contextResq.execute("PF('acessoDialog').show();");
			}
		}
		else if(usuarioAcessoL.size() == 1){
			if(valorParametro.equals(constObj.PAGINA_ALTERA_ACESSO)){
				String msg = PropertiesLoaderImpl.getValor("ErroAlterarAcesso");
				FacesContext.getCurrentInstance().addMessage("mensagem" , new FacesMessage(FacesMessage.SEVERITY_INFO, "Usurio " + nomeUsuario + "",msg));  
				context.getExternalContext().getFlash().setKeepMessages(true);// adiciona esta linha.
				redirecionaPaginaPortal();
			}	
		}
		
		// RENOVAÇÃO PLANO
		if(loginOjb.getSessao("contratoExpirandoDias") != null){
			String regraVenc = contratoMB.defineRegraRenovacaoContrato();
			if(regraVenc.equals(constObj.CONTRATO_VENCIDO)){
				statusRenovacaoDialog = true;
				contextResq.execute("PF('dlgDefinePlano').show();");
			}
			else{
				statusRenovacaoDialog = false;
			}
		}
	}
	
	

/*
	public void loadAcessoUsuarioLogado(){
		System.out.println("loadAcessoUsuarioLogado()");
		FacesContext context = FacesContext.getCurrentInstance();
		RequestContext contextResq = RequestContext.getCurrentInstance();
		int idUsuario = (Integer) loginOjb.getSessao("IDUsuario");
		setAcessoObj(new AcessoWeb());
		filialObj = new RestauranteFilialWeb();
		filialJuridicoObj = new RestauranteFilialJuridicoWeb();
		
		
		String nomeUsuario = (String) loginOjb.getSessao("NomeUsuario");
		String parametroSessao = (String) loginOjb.getSessao("NomeFantasia");
		System.out.println("ParametroSessao  "+ parametroSessao);
		
		nomeUsuario = "Olá "+ nomeUsuario;
		setNomeUsuario(nomeUsuario);
		
		if(usuarioAcessoL.size() == 0){
			usuarioAcessoL = acessoEJB.findUsuarioAcessoByIDUsuario(idUsuario);
			gravaNomeRestauranteSessao("UsuarioLogado",1);
			for(AcessoWeb objAcesso : usuarioAcessoL){
				if(objAcesso.getAcessoFilial().equals("N")){
					setIdRestSede(objAcesso.getRestauranteSedeWeb().getIdRestauranteSedeWeb());
					setRestSede(objAcesso.getRestauranteSedeWeb().getRestauranteSedeJuridicoWeb().getNomeFantasia());
				}
				else if(objAcesso.getAcessoFilial().equals("S")){
					System.out.println("getIdRestauranteFilialWeb()   "+ objAcesso.getRestauranteFilialWeb().getIdRestauranteFilialWeb());
					System.out.println("getNomeFantasiaFilial()   "+ objAcesso.getRestauranteFilialWeb().getRestauranteFilialJuridicoWeb().getNomeFantasiaFilial());
					filialObj.setIdRestauranteFilialWeb(objAcesso.getRestauranteFilialWeb().getIdRestauranteFilialWeb());
					
					filialJuridicoObj.setNomeFantasiaFilial(objAcesso.getRestauranteFilialWeb().getRestauranteFilialJuridicoWeb().getNomeFantasiaFilial());
					filialObj.setRestauranteFilialJuridicoWeb(filialJuridicoObj);
					filialAcessoL.add(filialObj);
					setFilialAcessoL(filialAcessoL);
					filialObj = new RestauranteFilialWeb();
					filialJuridicoObj = new RestauranteFilialJuridicoWeb();
				}
			}
			// Grava o total de restaurante filiais cadastradas no plano
			loginOjb.gravarSessao("QdteRestauranteFilialCadastrado", filialAcessoL.size());
			System.out.println("TAmanho List UsuarioAcessoL  "+ usuarioAcessoL.size());
			
			if(usuarioAcessoL.size() > 1)
			{
				if(parametroSessao == null || valorParametro.equals(constObj.PAGINA_ALTERA_ACESSO)){
					System.out.println("TAmanho List UsuarioAcessoL  "+ usuarioAcessoL.size());
					setStatusDialog(true);
					contextResq.execute("PF('acessoDialog').show();");
				}
			}
			else if(usuarioAcessoL.size() == 1){
				setStatusDialog(false);
				if(parametroSessao == null){
					defineDadosAcessoTela();
					redirecionaPaginaPortal();
				}
				else if(valorParametro.equals(constObj.PAGINA_ALTERA_ACESSO)){
					String msg = PropertiesLoaderImpl.getValor("ErroAlterarAcesso");
					FacesContext.getCurrentInstance().addMessage("mensagem" , new FacesMessage(FacesMessage.SEVERITY_INFO, "Usurio " + nomeUsuario + "",msg));  
					context.getExternalContext().getFlash().setKeepMessages(true);// adiciona esta linha.
					redirecionaPaginaPortal();
				}	
			}
			else if(usuarioAcessoL.size() == 0){
				
			}
 
		}
		
		// RENOVAÇÃO PLANO
		
		if(loginOjb.getSessao("contratoExpirandoDias") != null){
			String regraVenc = contratoMB.defineRegraRenovacaoContrato();
			if(regraVenc.equals(constObj.CONTRATO_VENCIDO)){
				statusRenovacaoDialog = true;
				contextResq.execute("PF('dlgDefinePlano').show();");
			}
			else{
				statusRenovacaoDialog = false;
			}
		}
	}
	*/
	
	public void defineDadosAcessoTela(){
		System.out.println("defineDadosAcessoTela");
		
		// SELECIONADO OPCAO RESTAURANTE-SEDE
		if(getRestauranteSelect().equals(getRestSede())){
			gravaNomeRestauranteSessao("NomeFantasia",getRestSede());
			gravaNomeRestauranteSessao("NomeFantasiaSede",getRestSede());
			gravaNomeRestauranteSessao("AcessoFilial",constObj.ACESSO_FILIAL_NAO);
			gravaNomeRestauranteSessao("IDRestaurante",getIdRestSede());
			gravaNomeRestauranteSessao("IDSede",getIdRestSede());
			statusDialog = false;
		}
		else{
			// SELECIONADO OPCAO RESTAURANTE-FILIAL
			for(AcessoWeb objAcesso : usuarioAcessoL){
				int idFilial = Integer.parseInt(getRestauranteSelect()); 

				if(objAcesso.getAcessoFilial().equals("S")){
					
					if(objAcesso.getRestauranteFilialWeb().getIdRestauranteFilialWeb() == idFilial){
						String dado = objAcesso.getRestauranteFilialWeb().getRestauranteFilialJuridicoWeb().getNomeFantasiaFilial();
						int idSede = objAcesso.getRestauranteSedeWeb().getIdRestauranteSedeWeb();
						statusRestauranteFilial = objAcesso.getRestauranteFilialWeb().getStatus();
						gravaNomeRestauranteSessao("NomeFantasia",dado);
						gravaNomeRestauranteSessao("NomeFantasiaSede",objAcesso.getRestauranteSedeWeb().getRestauranteSedeJuridicoWeb().getNomeFantasia());
						gravaNomeRestauranteSessao("AcessoFilial",constObj.ACESSO_FILIAL_SIM);
						gravaNomeRestauranteSessao("IDRestaurante",idFilial);
						gravaNomeRestauranteSessao("IDSede",idSede);
						statusDialog = false;
					}
				}
			}
		}
	}
	
	public int getIdRestFilial() {
		return idRestFilial;
	}


	public void setIdRestFilial(int idRestFilial) {
		System.out.println("setIdRestFilial "+  idRestFilial);
		this.idRestFilial = idRestFilial;
	}

	public List<RestauranteFilialWeb> getFilialAcessoL() {
		return filialAcessoL;
	}


	public void setFilialAcessoL(List<RestauranteFilialWeb> filialAcessoL) {
		this.filialAcessoL = filialAcessoL;
	}


	public boolean isStatusDialog() {
		return statusDialog;
	}


	public void setStatusDialog(boolean statusDialog) {
		this.statusDialog = statusDialog;
	}


	public int getIdRestSede() {
		return idRestSede;
	}


	public void setIdRestSede(int idRestSede) {
		this.idRestSede = idRestSede;
	}


	public String getRestSede() {
		return restSede;
	}


	public void setRestSede(String restSede) {
		this.restSede = restSede;
	}


	public String getNomeUsuario() {
		System.out.println("getNomeUsuario()   "+ nomeUsuario);
		return nomeUsuario;
	}


	public void setNomeUsuario(String nomeUsuario) {
		this.nomeUsuario = nomeUsuario;
	}

	public LoginMB getLoginOjb() {
		return loginOjb;
	}

	public void setLoginOjb(LoginMB loginOjb) {
		this.loginOjb = loginOjb;
	}

	public List<AcessoWeb> getUsuarioAcessoL() {
		return usuarioAcessoL;
	}

	public void setUsuarioAcessoL(List<AcessoWeb> usuarioAcessoL) {
		this.usuarioAcessoL = usuarioAcessoL;
	}

	public String getRestauranteSelect() {
		System.out.println("DADOS EMPRESA FILIAL ................"+ restauranteSelect);
		
		return restauranteSelect;
	}

	public void setRestauranteSelect(String restauranteSelect) {
		this.restauranteSelect = restauranteSelect;
	}

	public AcessoWeb getAcessoObj() {
		return acessoObj;
	}

	public void setAcessoObj(AcessoWeb acessoObj) {
		this.acessoObj = acessoObj;
	}

	public AcessoFacade getAcessoEJB() {
		return acessoEJB;
	}

	public void setAcessoEJB(AcessoFacade acessoEJB) {
		this.acessoEJB = acessoEJB;
	}

	public RestauranteFilialWeb getFilialObj() {
		return filialObj;
	}

	public void setFilialObj(RestauranteFilialWeb filialObj) {
		this.filialObj = filialObj;
	}

	public RestauranteFilialJuridicoWeb getFilialJuridicoObj() {
		return filialJuridicoObj;
	}

	public void setFilialJuridicoObj(RestauranteFilialJuridicoWeb filialJuridicoObj) {
		this.filialJuridicoObj = filialJuridicoObj;
	}


	public ContratoMB getContratoMB() {
		return contratoMB;
	}


	public void setContratoMB(ContratoMB contratoMB) {
		this.contratoMB = contratoMB;
	}


	public boolean isStatusRenovacaoDialog() {
		return statusRenovacaoDialog;
	}


	public void setStatusRenovacaoDialog(boolean statusRenovacaoDialog) {
		this.statusRenovacaoDialog = statusRenovacaoDialog;
	}


	public String getTituloNome() {
		tituloNome = (String) loginOjb.getSessao("NomeUsuario");
		return tituloNome;
	}

	public void setTituloNome(String tituloNome) {
		this.tituloNome = tituloNome;
	}



	public boolean isSkip() {
		return skip;
	}





	public void setSkip(boolean skip) {
		this.skip = skip;
	}



	public String getMsgPlanoVencendo() {
		return msgPlanoVencendo;
	}



	public void setMsgPlanoVencendo(String msgPlanoVencendo) {
		this.msgPlanoVencendo = msgPlanoVencendo;
	}



	public AcessoMB getAcessoMB() {
		return acessoMB;
	}



	public void setAcessoMB(AcessoMB acessoMB) {
		this.acessoMB = acessoMB;
	}



	public LoginMB getLoginMB() {
		return loginMB;
	}



	public void setLoginMB(LoginMB loginMB) {
		this.loginMB = loginMB;
	}


	public boolean isStatusPlAgPagamento() {
		return statusPlAgPagamento;
	}


	public void setStatusPlAgPagamento(boolean statusPlAgPagamento) {
		this.statusPlAgPagamento = statusPlAgPagamento;
	}


	public boolean isStatusPlDesativado() {
		return statusPlDesativado;
	}


	public void setStatusPlDesativado(boolean statusPlDesativado) {
		this.statusPlDesativado = statusPlDesativado;
	}


	public boolean isStatusPlCadastrado() {
		return statusPlCadastrado;
	}


	public void setStatusPlCadastrado(boolean statusPlCadastrado) {
		this.statusPlCadastrado = statusPlCadastrado;
	}


	public List<RestauranteFilialWeb> getRestFilial() {
		return restFilial;
	}


	public void setRestFilial(List<RestauranteFilialWeb> restFilial) {
		this.restFilial = restFilial;
	}


	public List<CardapioQtdeTO> getQtdeCardapioAtivoPorFilialL() {
		
		if(loginOjb.getSessao("IDRestaurante") != null){
			qtdeCardapioAtivoPorFilialL = calculaQtdeCardapiosAtivoPorAcesso();
			gravaNomeRestauranteSessao("QtdeCardapioAtivoPorFilialCadastrado",qtdeCardapioAtivoPorFilialL.size());
		}
		return qtdeCardapioAtivoPorFilialL;
	}


	public void setQtdeCardapioAtivoPorFilialL(
			List<CardapioQtdeTO> qtdeCardapioAtivoPorFilialL) {
		this.qtdeCardapioAtivoPorFilialL = qtdeCardapioAtivoPorFilialL;
	}


	public String getRegraVencimentoContrato() {
		return regraVencimentoContrato;
	}


	public void setRegraVencimentoContrato(String regraVencimentoContrato) {
		this.regraVencimentoContrato = regraVencimentoContrato;
	}



}
